Contextual variable attribute scaling

ABSTRACT

Embodiments for contextual variable scaling relate to selection of objects. For example, such objects may include text, audio, visual, and/or physical objects. In one or more examples, such objects may be selected for variable scaling. For example, variable scaling of such selected objects may be based at least in part on a beginning attribute value and/or an ending attribute value.

CONTEXTUAL VARIABLE ATTRIBUTE SCALING CROSS-REFERENCE TO RELATEDAPPLICATION

This application is a divisional of U.S. application Ser. No. 11/370,401filed Mar. 7, 2006, now U.S. Pat. No. 8,026,923, which is incorporatedby reference herein in its entirety.

BACKGROUND

This disclosure relates to computer digital publishing.

Computer generated text may be defined in part by attributes such astype face and size. These attributes may be static. Each attribute mayhave an associated value. For prior computing platforms, a user mayselect a region of desired text and manually apply changes to selectedattributes. A familiar example is where a user selects a region of textcurrently rendered at 10 points and changes this to 12 points. In sodoing all of the text in the selected region may share a common sizeattribute value, that of 12 points for this example. Alternatively, auser may more variedly affect a region of text by applying a style. Acharacter style, by way of example, perhaps referred to as “Normal,” maybe defined with a character size set to 12 points. If the “Normal” styleis applied to a region of text, the entire region of text may berendered with this constant and uniform character size. A paragraphstyle may also be applied to a region of text and affect multipleattributes nearly simultaneously. A selected paragraph style may bedefined to affect the font, size, interline spacing, and/or margins of aselected paragraph for instance. A style may then be used, re-used,and/or referenced and applied to a region of text. A potential drawbackfor prior style formatting is that the value of an attribute is constantfor a given style.

Computer objects may be similarly constrained. Prior systems mayaccommodate a box filled with text as an object. Applying an effect suchas squeezing one end of the object while expanding the other end worksonly upon the object. The textual content of the box object may betreated as an image. Changes may be applied to the object and not to thecontents of the object, here the text. For this example, the attributesof the image are altered but not those of the underlying text.Similarly, varying the size or rotation attributes of objects mayrequire individual attention to the separate objects.

Previous systems and methods may not accommodate scenarios where theuser may want to vary the value of an attribute across a region. Forprior systems, a user may only do this by manually selecting each andevery individual text character or object and applying the user-intendedattribute value. Because these attributes may be overrides to theindividual attributes and may be specific to a particular text characteror object in a particular location, they cannot be re-used. Accordingly,the user modified formatting can not be copied and re-applied to adifferent region of text characters or objects. Such manual variationmay be time consuming and typically does not provide sufficient controlor even a professional look to a project.

BRIEF DESCRIPTION OF THE DRAWINGS

Subject matter is particularly pointed out and distinctly claimed in theconcluding portion of the specification. Claimed subject matter,however, both as to organization and method of operation, together withobjects, features, and advantages thereof, may best be understood byreference of the following detailed description if read with theaccompanying drawings in which:

FIG. 1 is a flow chart depicting an example embodiment of a method forcomputing a new attribute value;

FIG. 2 a depicts an example line of text reflowed in accordance with anembodiment;

FIG. 2 b depicts an example line of text reflowed in accordance with anembodiment;

FIG. 3 is a flow chart depicting an example embodiment of a method forreflowing text;

FIG. 4 depicts multiple lines of text reflowed in accordance with anembodiment;

FIG. 5 depicts a table of text before and after operation of anembodiment;

FIG. 6 a depicts text formed along a text path in accordance with anembodiment;

FIG. 8 b depicts text formed along a text path in accordance with anembodiment;

FIG. 7 a is a flow diagram of an example embodiment of a method forscaling text attributes;

FIG. 7 b is a flow diagram of an example embodiment of a method forscaling object attributes;

FIG. 8 a depicts results of an operation on objects in accordance withan embodiment;

FIG. 8 b depicts results of an operation on objects in accordance withan embodiment;

FIG. 9 a depicts results of an operation on object attributes inaccordance with an embodiment;

FIG. 9 b depicts results of an operation on object attributes inaccordance with an embodiment;

FIG. 9 c depicts results of an operation on object attributes inaccordance with an embodiment;

FIG. 10 is a block diagram of an example embodiment of a computer systemfor variably scaling attributes;

FIG. 11 is a block diagram of an example embodiment of a computersoftware application for variably scaling attributes; and

FIG. 12 shows an example embodiment of a context decision engine.

FIG. 13 is a flow chart depicting an example embodiment of a method ofcomputing a new attribute value.

FIG. 14 is a diagram illustrating results achieved by an embodiment forvariably scaling a size attribute utilizing a user selected order.

FIG. 15 shows and example embodiment of computer code capable of varyingthe size attribute of text using either a linear or ellipticalinterpolation function and adding an attribute value not earlierpresent.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the claimedsubject matter. However, it will be understood by those skilled in theart that the claimed subject matter may be practiced without thesespecific details. In other instances, well-known methods, procedures,and components have not been described in detail so as not to obscurethe claimed subject matter.

Reference throughout this specification to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment of claimed subject matter. Thus, theappearances of the phrase “in one embodiment” and/or “an embodiment” invarious places throughout this specification are not necessarily allreferring to the same embodiment. Furthermore, the particular features,structures, and/or characteristics may be combined in one or moreembodiments.

Unless specifically stated otherwise, as apparent from the followingdiscussion, it is appreciated that throughout this specificationdiscussions utilizing terms such as “processing,” “computing,”“calculating,” “selecting,” “forming,” “enabling,” “inhibiting,”“identifying,” “initiating,” “querying,” “obtaining,” “hosting,”“maintaining,” “representing,” “modifying,” “receiving,” “transmitting,”“storing,” “determining” and/or the like refer to the actions and/orprocesses that may be performed by a computing platform, such as acomputer or a similar electronic computing device, that manipulatesand/or transforms data represented as physical, electronic and/ormagnetic quantities and/or other physical quantities within thecomputing platform's processors, memories, registers, and/or otherinformation storage, transmission, reception and/or display devices.Accordingly, a computing platform refers to a system or a device thatincludes the ability to process and/or store data in the form ofsignals. Thus, a computing platform, in this context, may comprisehardware, software, firmware and/or any combination thereof. Further,unless specifically stated otherwise, a process as described herein,with reference to flow diagrams or otherwise, may also be executedand/or controlled, in whole or in part, by a computing platform.

FIG. 1 is a flow chart depicting an example embodiment of a method forcomputing a new attribute value. A process may begin at block 100perhaps under the direction of a user and/or computing program. At block110 an attribute value may be received from an attribute source. For anembodiment, the attribute source may include text or computer objectsand the attribute value may describe some attribute such as size,although the scope of the claimed subject matter is not limited in theserespects. At block 120 a new attribute value based at least in part uponthe attribute value received at block 110 may be generated. Otherfactors that may contribute to the generation of new attribute valuesare discussed below. At block 130 a new attribute value may be output.The process may end at block 140. An embodiment in accordance withclaimed subject matter may include all, more than all or less than allof blocks 100-140. Furthermore, the order of blocks 100-140 is merely anexample order, and the scope of the claimed subject matter is notlimited in this respect.

FIGS. 2 a and 2 b depict example lines of text redo red in accordancewith an embodiment. For this example, the lines of text may be reflowedin accordance with the embodiment discussed above in connection withFIG. 1. FIG. 2 a shows a line of text 210 composed of a series ofindividual characters of text. Line 220 depicts a result of processingline 210 in accordance with the embodiment discussed above in connectionwith FIG. 1. Allowing for this example that all of the text charactersin line 210 share a common size attribute, note how this same sizeattribute is varied from smaller than original on the left end of line220 to larger than original on the right end of line 220. New sizeattribute values for each character of text in the original line 210 arecalculated to produce line 220. For this example, the new attributevalues may be computed along a linear scale utilizing a linear functionfrom the smallest to the largest size characters. Also for this example,the gradient of size difference between any two text characters alongline 220 is substantially the same gradient of size difference asbetween any other two adjacent text characters along this line as thelinear function is used to interpolate a uniform step size.Alternatively, an embodiment ay utilize a step function that steps inaccordance with a specified step increment.

FIG. 2 b presents an illustration of an alternative output in accordancewith the embodiment discussed above in connection with FIG. 1. Line 230is similar to line 210 in that each shows a line of text characters eachhaving a similar size attribute to others on the line. Referring againto the embodiment depicted in FIG. 1, new attribute values are computedat block 120 for the size of each character of line 230. At block 130,the new attribute values are used to produce the altered line of text240. For this example, the size attribute for the characters along line240 are varied from the smallest size at either end of the line to thelargest size at the center. Here, again, the change in the size gradientbetween any two adjacent characters is substantially the same as betweenany other two adjacent text characters due to interpolation. For thisexample, the new size attribute values may be computed at block 120using a bell shaped function thus producing the distinctive output ofline 240. An embodiment may create a selected result by operating uponline 230 in two separate linear text runs or may produce the effectutilizing beginning, intermediate, and ending values. Additionalfunctions that may be used either with interpolation or withoutinterpolation include, but are not limited to, sinusoidal, elliptical,and parabolic functions. An embodiment may be used to transform the timeattribute associated with a region or sub-region. For example, on adisplay the size attribute for a character or word may be set smallerthen larger then smaller again over time to draw attention to theparticular character or word. By way of contrast, the time attribute fora character on a printed page may be unchanging. In one or moreembodiments a time attribute comprises time references in data such as,for example, SMPTE time code.

With digital publishing, each character of text, or type, may existwithin a species of frame called a text frame. Text frames may also beknown by other terms, such as for example text boxes and text blocks.Text frames may be independent objects as are shapes. A text frame maycomprise a container filled with text just as geometric shapes may oftenbe filled with color. A text frame may hold a region of text or itselfindividually be a region or sub-region. In one or more embodiments atransformation may be applied to a collection of text frames. Textframes may be any shape or size. A document may have many text frameswithin it. For example, a document laid out in multiple columns may haveeach column in an individual text frame. Each column may or may not be aseparate region or sub-region. In such a document, multiple text framesholding continuing portions of text may be linked, or threaded, togetherto form a logical structure. A body of text, such as a story, may bedropped into a first text frame and the digital publishing software maycalculate what can fit where. What will not fit in the first frame mayflow into subsequent linked frames. This may be referred to as “pouringa document.” If changes are later made to the story the digitalpublishing software may account for these changes, make the appropriaterecalculations and reflow, that is flow again, the text to againproperly fill the linked text frames. This may also be known as autoflowing a document. In a broader sense and consistent with theembodiments described herein, all computer generated text may beoriginally flowed when first input to a computer, although the scope ofthe claimed subject matter is not limited in this respect. In accordancewith one or more embodiments, a contiguous and/or non-contiguous seriesof text boxes may comprise the selected region and a transformation maythen be applied across the entire series. The concept of reflowing maybe applicable to not only textual elements but also to objects. In fact,any object having associated with it attributes capable of numericmanipulation may be a suitable candidate for flowing, reflowing,manipulating, scaling, and/or transforming in accordance withembodiments of claimed subject matter.

In accordance with one or more embodiments, an object may refer to anyitem that may be selected, scaled, manipulated and/or transformed by acomputing device, such as for example shapes, pictures, images,graphics, video files, audio files, visual files, data files,encoding/decoding techniques, text, and text boxes. Such objects mayinclude, for example, text objects to contain and/or control the layoutand/or appearance of text within the object, graphic objects to containand/or control the layout and/or appearance of graphics and/or imageswithin the object, and/or frames utilized as a border and/or perimeterof another object. In one or more embodiments, graphic may refer to apictorial and/or image representation of an object, and in one or morealternative embodiments may refer to an object itself. Audio tiles areobjects to contain and/or control sounds recorded, created, and/or to bereproduced. Audio files comprise attributes capable of transformation,that include but are not limited to, attributes associated withloudness/softness, frequency and tempo. Tempo, for example, may bemanipulated by transforming the time attribute associated with audiodata within or associated with an audio file. In one or more embodimentsan object may be a physical object. Examples of physical objectsinclude, but are not limited to, items rendered by 3-D printers,produced by fabrication laboratories, personal fabricators,nano-technology, and/or under computer control, electrical and/ormagnetic signals capable of being stored, transferred, combined,compared, and/or otherwise manipulated. For example, such a physicalobject may be represented, displayed, and/or otherwise manipulated usingAdobe® Acrobat3D® software or the like available from Adobe SystemsIncorporated of San Jose, Calif., USA. However, these are merely exampledefinitions and illustrations of the above terms, phrases, and/orconcepts wherein other definitions and illustrations may apply as well,and the scope of claimed subject matter is not limited in theserespects.

FIG. 3 is a flowchart of an example embodiment of a method for variableattribute scaling. Although text is used in this example, otherembodiments are possible for applications not using text. For thisexample, processing begins at block 300. At block 305, a user selectsthe region of text, or area of text, as the identified work area theuser intends to reflow. Such selection may be accomplished in any of avariety of ways, including by way of non-limiting example, using acomputer pointing device such as a mouse or a keyboard. The region oftext selected may include, again by way of non-limiting example, a lineof single characters such as lines 210 or 230, a page of text, or rowsor columns of a spreadsheet. At block 310, a user may select thebeginning and ending stop values as control parameters for the endpointsthat may define the limits of the modification to be applied. Stopvalues may comprise attribute values that are used as controlparameters. In this example, the stop values may establish how small thesmallest and how large the largest text characters will be rendered. Forline 220 the beginning stop value may comprise the smallest font size,as displayed on the left end of the sample output line 220 and theending stop value the largest size as shown on the right end of theexample output line 220. Similarly, for sample output line 240 thebeginning size attribute may produce the text characters shown at eitherend of the line while the ending stop value may produce the largestcharacters at the center of line 240. At block 315, the user may selectthe effect desired. This may be done by selecting a function or acombination of functions such as, for example, a linear, step,interpolation, bell, and/or recurring function, to name but a few, toapply to the selected text. The selected function or functions may beused to interpolate how many gradients are necessary to more or lessuniformly distribute the changes across the region selected.

At block 320, the nature of the selected text region 320 may bedetermined by examining the context in which the selection was made. Forexample, if the region of text selected is a line of adjacent characterson a single line, a determination may be made that the transformation beapplied from one end of the selected text to the other along the lineand the resulting reflow displayed as in example output lines 220 and240. For an embodiment where a page of text composed of many individuallines of text (see for example lines 410 shown in FIG. 4) is selected asthe text region, the system may determine that the transformation beapplied down the page in the Y-direction transforming each individualline such that all of the characters on any given line are given thesame treatment which is in turn different from that given to lines aboveor below this line. Alternatively, the system may determine that thetransformation be applied across the page in the X-directiontransforming each word of text so that each character of text within aword share a similar value for an attribute which is different from thevalue of the same attribute in a word of text before or after a givenword. See for example changes applied in the Y-direction for lines 420as depicted in FIG. 4.

For another example, a spreadsheet may comprise a number of individualcells arranged by rows and columns. For this example, a determinationmay be made that each cell containing text be given the same treatmentto all characters within the cell. For some embodiments, the treatmentgiven one cell may be different from some or all other cells. Havingreceived the user inputs as to the region of text to transform at block305, the beginning and ending stop values at block 310, and the functiondesired at block 315, the system may at block 320 determine the natureof the text selected for transformation from the context of the selectedtext. Upon determining the nature of the region selected, the system maybreak the region or area down into sub-regions or sub-areas. Asub-region may comprise the smallest addressable unit the scalingapplication can manipulate or save new attribute values to. In sampleoutput lines 220 and 240, the sub-regions may comprise the individualtext characters while in sample output lines 420 the sub-regions maycomprise the individual lines of text. The system may at block 325 applythe selected function to the selected region of text.

For an embodiment, following internal manipulation of the selected textby the system the reflowed text may be displayed as a text run at block330 for the user to review. If the user is not satisfied with the resultthe user may have several options at block 335 to choose from. If theuser is not satisfied with the region of text selected for reflow theuser may, as indicated by arrow 336, select a different region of textat block 305 to reflow with a new transformation. If the user is notsatisfied with the beginning and ending stop values the user may, asindicated by arrow 337, select different beginning and ending stopvalues at block 310 for a subsequent transformation. Further, if theuser is not satisfied with the particular function chosen the user may,as indicated by arrow 338, choose another function at block 315 for analternative transformation. If the user is satisfied with the resultsthe user may accept the results at block 335 and the system may thenwrite the new attributes to each sub-region as appropriate at block 340.Alternatively, the attribute values may be stored in an associated datastructure. The data structure may be stored at a memory or other storagemedium for example. The process may complete at block 345. For thisexample embodiment, a meta level 370 comprising blocks 305, 310, and 315may correspond to block 110 depicted in FIG. 1, a meta level 380comprising blocks 320 and 325 may correspond to block 120 depicted inFIG. 1, and a meta level 390 comprising blocks 330, 335, and 340 maycorrespond to block 130 depicted in FIG. 1.

In an alternative embodiment, a saved or copied style may be applied atmeta level 370. Using a style in such a manner may allow for ease inreusing beginning and ending stop values as well as a selected functiontogether as a unit for example. Additionally, changes to a style may beallowed to cascade through a project and give all text or objects basedupon the same style a similar treatment. An embodiment may support astyle nested within a style.

An embodiment in accordance with claimed subject matter may include all,more than all or less than all of blocks 305-340. Furthermore the orderof blocks 305-340 is merely one example order, and scope of the claimedsubject matter is not limited in this respect.

FIG. 4 depicts multiple lines of text reflowed in accordance with anembodiment. Lines of text 410 depict unaltered lines. Lines 420 depict apossible output of the embodiments described above in connection withFIGS. 1 and 3. For this example, the size attribute is varied in theY-direction of the original text. For other examples, one or moreattributes may be varied in the X-direction. Similarly, attributes maybe varied at an any angle.

FIG. 5 shows a table of text before and after conversion in accordancewith an embodiment. An original table 510 may be formatted with allnon-header rows sharing a commonsize attribute value. Apost-transformation table 520 for this example demonstrates size scalingin the company, revenue in millions, and revenue changed columns. Forthis example, the context for the transformation may be identified asthe columns. However, for other examples, rows or cells may similarly beutilized.

In another embodiment, text may be caused to flow and/or reflow alongthe contours of a line, stroke, or shape. An example of a line is acurve. When text flows along a curve the curve may comprise a path. Suchtext or type may be referred to as type on a path or path type. FIG. 6provides two examples employed in such situations in accordance with oneor more embodiments. Line 610 depicts a simple line of text. In thisparticular example the phrase is repeated. Text 620 shows the text ofline 610 fitted to a line, which is for this example may be visible,using a linear function. A beginning stop value may be used to producethe small sized text on the left end of line 620 while an ending stopvalue may be used to produce the text size at the right-hand end of line620. For another example, text of line 630 may be fitted to a line, notvisible for this example, so that text 640 seemingly spirals into thepage. For this example, the beginning stop value may define the largesized text while the ending stop value may define the small sized textor vice versa. A linear function may be employed for this example,however the scope of the claimed subject matter is not limited in thisrespect.

FIG. 7 a is a flow diagram of an example embodiment of a method forscaling text attributes. At block 710, an original text is provided. Atblock 720, any of a wide range of text attribute scaling operations maybe performed. At block 730, the scaled text is output.

FIG. 7 b is a flow diagram of an example embodiment of a method forscaling object attributes. At block 750, an original object is provided.At block 760, any of a wide range of object scaling operations may beperformed. At block 770, the scaled object is output. The text and/orobject scaling operations at blocks 720 and/or 760 may correspond toexample embodiments for attribute scaling discussed above in connectionwith FIGS. 1-6.

FIG. 8 a depicts results of an operation on objects in accordance withan embodiment. For this example, a series of similarly sized frames 810,each having the same size attribute, processed in accordance with one ormore embodiments described herein to produce objects 820. For thisexample, the sub-regions, or sub-areas, comprise the individual frames.Also for this example, the beginning stop value may comprise the sizeattribute for the smallest frame and the end stop value may comprise thesize attribute for the largest frame. For this example, the beginningand end stop values may be utilized by a simple linear function.

FIG. 8 b depicts results of an operation on objects in accordance withan embodiment. For this example, a series of objects (apples) 830 sharethe same size attribute. After processing the apples have dissimilarsize attributes, as depicted by apples 840. For this example, thebeginning stop value may comprise a size attribute for the largest sizeapple object and the end stop value may comprise a size attribute forthe smallest apple object. Also for this example, a simple linearfunction may be applied from right to left. The operations described inconnection with FIGS. 8 a and 8 b are merely examples, and the scope ofthe claimed subject matter is not limited in these respects.

As discussed previously, size attributes are not the only attributesthat may be altered in accordance with claimed subject matter. FIGS. 9a, 9 b, and 9 c demonstrate the application of example embodiments toother example attributes. FIG. 9 a shows a series of identicalrectangles 910. Selecting all four of the rectangles for this examplemay establish the region or area for processing. For this example,before processing none of rectangles 910 had a border. After processing,the rectangles 910 have visible borders. For this example, an attributepreviously non-existent or set to zero is either added or set to a valuemaking what was previously unviewable, viewable. In FIG. 9 b, the weightof the border attribute is either added or set to a non-zero value.Successive rectangles 920 may have either increasing or decreasingweight (width) to theft borders depending upon whether the viewingperspective is from front to back or the reverse. FIG. 9 c depictsrectangles 930 whose orientation attribute may be altered. Theorientation attribute of an object is yet another attribute that may bealtered using embodiments described herein. The rectangles 930 are shownrotated through an angle in FIG. 9 c. Again for this example thetotality of the rectangles 910 shown in FIG. 9A are selected as the areafor modification. Each rectangle, an object, comprises a sub-area.Viewing from left to right reveals that the change in the angle ofrotation from one rectangle to the next may be reduced from the previousrectangle. A large start value, shown at the left, may give way to asmaller end value on the right. FIGS. 9 a-9 c depict a variety of waysthat various attributes may be altered in accordance with claimedsubject matter. However, the scope of the claimed subject matter is notlimited in these respects.

FIG. 10 is a block diagram of a system 1000 that includes a processor1010 coupled to other components via system bus 1050. System memory 1020is coupled to system bus 1050. A user interface 1030 is also coupled tosystem bus 1050. A user interface 1030 may include a keyboard, pointingdevice, display, printer, sound speaker, and/or lights, for example. Astorage medium 1040 is coupled to the system bus 1020. Further, anetwork interface 1060 is coupled to the system bus 1050. Althoughexample system 1000 is shown with a particular configuration ofcomponents, other embodiments are possible using any of a wide range ofconfigurations. The term “computer system” as used herein is meant toinclude any electronic device capable of executing software and/orfirmware instructions. System 1000 may be used to perform some or all ofthe various functions discussed above in connection with FIGS. 1-9.

FIG. 11 is a block diagram of an example embodiment of a computersoftware application for variably scaling attributes. For this example,input may be handled by a controller module 1110 and output may behandled by the view module 1100. Together, modules 1100 and 1110 maycomprise a user interface 1130. Data and processing may be handled bythe data and processing module 1120. This module may also be referred toas the model. From the example logical view of FIG. 11 it will beapparent to those skilled in the art that one may have multiple views1100 of the same model 1120.

FIG. 12 is a flowchart of an example embodiment of a context decisionengine. For purposes of illustration this figure is directed to anembodiment functioning with text, although the scope of the claimedsubject matter is not limited in this respect. As taught above, computerobjects, audio data, visual data, timing data, and physical data, tomention but a few of the possible applications, may all be treated in asimilar manner. In the current example, a region of text is firstselected at block 1205. The engine may determine the nature of theregion selected for reflow so that the engine can properly identify thesub-regions so to appropriately structure the reflow. The engine mayaccomplish this in part from an analysis of the context in which thetext arises. At block 1210, the engine may evaluate whether theselection is of a character of text. If the area selected is comprisedof a series of text characters the engine may transfer via line 1225 acontext indication of characters of text to the processing module atblock 1235. At block 1235, other input data such as beginning and endingstop values and a function may be applied to the selected area. Theresults generated at block 1235 may be output via line 1240 in the formof reflowed text at block 1245. If the region of text selected foralteration is determined as not a character at block 1210, processingmay continue to evaluate for other forms of text such as, line,paragraph, section, linked box, table row, table column, and path, toname but a few, at block 1215. Similarly to line 1225, line 1230 mayconvey to block 1235 a determination of a detected text type. If text isnot detected at block 1225 processing may continue at block 1220.

FIG. 13 is a flow chart depicting an example embodiment of a method forcomputing a new attribute value. A process may begin at block 1300perhaps under the direction of a user or computing program. At block1310 a region selection may be received. A region may be a line or linesof text, for example. At block 1320 the region received from block 1310may be parsed into one or more sub-regions. At block 1330 an attributevalue may be received from an attribute source. For an embodiment, theattribute source may include text or computer objects and the attributevalue may describe some attribute such as size, although the scope ofthe claimed subject matter is not limited in these respects. At block1340 a new attribute value based at least in part upon the attributevalue received from block 1330 may be generated. Other example factorsthat may contribute to the generation of new attribute values have beendiscussed above. At block 1350 a new attribute value may be output. Foran embodiment the new attribute value output at block 1350 may be outputto, for, with, or in a sub-region such as one resulting from operationof block 1320. The process may end at block 1360. An embodiment inaccordance with claimed subject matter may include all, more than all,or less than all of blocks 1300-1360. Furthermore, the order of blocks1300-1360 is merely an example order and the scope of the claimedsubject matter is not limited in this respect.

FIG. 14 is a diagram depicting transformations possible by one or moreembodiments. At the top of the page, in series 1400, are rectangles A,B, C, D, and E. These rectangles may represent a series of five objects.They may be text boxes, pictures, or images by way of non-limitingexample. In 1400 the rectangles are shown contiguous with each other butthis is not a requirement. For example, they may be a series of fiveimages, each on a separate page such as where each is placed at thebeginning of a different chapter in a book. A user has the option toselect all, none, or only some of the rectangles for transformation. Inone embodiment the order in which a user selects the objects is theorder in which the transformation is applied to the objects. If, forexample, a user selects A, then E, and then D in that order from series1400 and applies a linear function a possible output is depicted by thearrangement shown in series 1420 comprising rectangles A′, B′, D′, andE′. A was the first selected and A′ is rendered smaller than the otherrectangles. Neither B nor C were selected so neither B′ or C′ depicts atransformed rectangle. E was chosen after A and E′ is now larger than Ein series 1400. Finally, D was the selected last and D′ is the largestof any of the rectangles in series 1420. Series 1440 demonstrates wheredifferent output is generated where a user selects A, C, and then E inthat order from series 1400 and applies a bell function. A is rendered asmaller size at one end of the bell curve, as shown by A″ in series1440, B was not selected and is shown unaltered by B″, C was selected atthe midpoint of the selection process and is rendered the largest, asshown by C″, D was also not selected and is unchanged as D″, and finallyE was selected last as an endpoint for the bell function and is now thesame size as A″ and is depicted by E″. In one or more alternativeembodiments the transformation may be applied in a different order thanjust described such as for example from the front to the rear of adocument with only selected objects scaled. Size and order are merelyexample attributes to vary for purposes of illustration but the claimedsubject matter is not limited in these respects. As taught above, anyattribute can be transformed in any order.

FIG. 15 is an example embodiment of computer code for variably scalingthe size attribute of text and adding to text an attribute value notpreviously present. The computer code may run on a computer system thesame, similar, and/or relating to the system of FIG. 10 wherein thesystem may comprise one or more of the functional blocks described in,or describing, FIG. 10. However, the scope of the claimed subject matteris not limited in these respects. The capabilities of this exampleembodiment are selected merely for purposes of illustration and theclaimed subject matter is not limited in these respects. Computer code1500 may, as in this embodiment, be coded in the C++ language and besuitable for use with the Adobe® InDesign® CS2 computer softwareavailable from Adobe Systems Incorporated of San Jose, Calif., USA.Alternatively, the example embodiment may be coded in a differentcomputer language and be suitable for use either with Adobe® InDesign®CS2 or some other computer software, although the scope of the claimedsubject matter is not limited in this respect. Beginning at line 1510the example computer code may perform a linear interpolation function tocalculate then apply appropriate step sizes to variably scale textlinearly over a user-selected range. Beginning at line 1520 is anexample of how an elliptical interpolation may be coded. Similarly tothe sections of code beginning at lines 1510 and 1520 alternativeembodiments of the code may calculate appropriate values for otherinterpolation functions such as for example, but not limited to,sinusoidal or parabolic functions. Beginning at line 1530 the examplecode illustrates how an attribute that was not previously present may beadded to selected text. These are merely example illustrations of theabove concepts wherein other illustrations may apply as well, and thescope of claimed subject matter is not limited in these respects.

In the preceding description, various aspects of claimed subject matterhave been described. For purposes of explanation, systems andconfigurations were set forth to provide a thorough understanding ofclaimed subject matter. However, it should be apparent to one skilled inthe art having the benefit of this disclosure that claimed subjectmatter may be practiced without the specific details. In otherinstances, well-known features were omitted and/or simplified so as notto obscure claimed subject matter. While certain features have beenillustrated and/or described herein, many modifications, substitutions,changes and/or equivalents will now occur to those skilled in the art.It is, therefore, to be understood that the appended claims are intendedto cover ail such modifications and/or changes as fall within the truespirit of claimed subject matter.

What is claimed is:
 1. A method of variably scaling attributescomprising: selecting a region to alter, said region associated with anattribute value; selecting a control value; selecting a function;determining a context of said region and a transformation direction,wherein the context is determined based at least in part on examining atype of the region selected; separating said region into one or moresub-regions based at least in part upon the determined context of saidregion; and altering said attribute value for one of said one or more ofsub-regions according to the determined transformation direction, whenaltering said attribute is based at least in part on said function. 2.The method of claim 1, wherein said selecting a region to altercomprises: selecting an object.
 3. The method of claim 1 wherein saidfunction comprises: an interpolation function.
 4. The method of claim 1further comprising: displaying the results of altering scaling saidattribute value to a user.
 5. The method of claim 1 further comprising:saving the results of altering said attribute value for said one of saidone or more of sub-regions.
 6. The method of claim 1 further comprising:saving said control value and said function as a style.
 7. The method ofclaim 1, wherein selecting the function comprises selecting multiplefunctions and wherein altering the attribute is based at least in parton the multiple functions.
 8. The method of claim 1, wherein thefunction is at least one of a linear function, a step function, a bellfunction, or a recurring function.
 9. The method of claim 1, wherein thecontext is determined based at least in part on examining that the typeof the region selected is a text frame.
 10. The method of claim 1,wherein the context is determined based at least in part on examiningthat the type of the region selected is an object.
 11. The method ofclaim 1, wherein selecting the control value includes selecting abeginning stop value and an ending stop value for the associatedattribute value.
 12. The method of claim 1, wherein the transformationdirection includes at least one of an x-direction of the selected regionor a y-direction of the selected region.
 13. The method of claim 1,wherein determining the context further comprises determining if theselected region contains multiple individual lines of text.
 14. Themethod of claim 1, wherein determining the context further comprisesdetermining if the selected region contains cells arranged by rows orcolumns.
 15. An article comprising a non-transitory storage mediumhaving stored thereon instructions, that, if executed, result in:selecting a region to alter, said region associated with an attributevalue; selecting a control value; selecting a function; determining acontext of said region and a transformation direction, wherein thecontext is determined based at least in part on examining a type of theregion selected; separating said region into one or more sub-regionsbased at least in part upon the determined context of said region; andaltering said attribute value for one of said one or more of sub-regionsaccording to the determined transformation direction, wherein alteringsaid attribute is based at least in part on said function.
 16. Thearticle of claim 15, wherein said selecting a region to alter comprises:selecting an object.
 17. The article of claim 15 wherein said functioncomprises: an interpolation function.
 18. The article of claim 15wherein the instructions, if executed, further result in: displaying theresults of altering said attribute value to a user.
 19. The article ofclaim 15 wherein the instructions, if executed, further result in:saving the results of altering said attribute value for said one of saidone or more of sub-regions.
 20. The article of claim 15 wherein theinstructions, if executed, further result in: saving said control valueand said function as a style.